﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Insifo.WE;

public partial class mas_masGeneral1 : System.Web.UI.MasterPage
{
    #region CONSTANTES

    private const string CONTENIDO_SITIOCONFIG              = "SITIOCONF";
    private const string CONTENIDO_SITIOCONFIG_SETDEVEL     = "SETDEVEL";
    private const string CONTENIDO_SITIOCONFIG_GALEXITO     = "GALEXITO";
    private const string CONTENIDO_SITIOCONFIG_MSNET        = "MSNET";
    private const string CONTENIDO_SITIOCONFIG_MSSQL        = "MSSQL";
    private const string CONTENIDO_SITIOCONFIG_REDSOCIAL1   = "REDSOCIAL1";
    private const string CONTENIDO_SITIOCONFIG_REDSOCIAL2   = "REDSOCIAL2";

    #endregion

    private Utilitarios Util = new Utilitarios();

    #region Public Properties
    
    public BEUsuarioSistema UsuarioSistema
    {
        get { return (BEUsuarioSistema)Session["UsuarioSistema"]; }
    } 

    public String UsuarioCodigo
    {
        set { this.hfUsuarioCodigo.Value = value; }
        get { return this.hfUsuarioCodigo.Value; }
    }


    #endregion Public Properties

    protected void Page_Init(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Cargar();
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Cargar()
    {
        ConfiguraHeader();
        ConfiguraFooter();
    }

    protected void ConfiguraHeader()
    {
        BEUsuarioSistema pbeUsu = UsuarioSistema;
        //Mostrar Perfil
        lblCompania.Text = pbeUsu.DescripcionCompania + "(" + pbeUsu.CodigoCompania + ")";
        lblUsuario.Text = pbeUsu.CodigoUsuario.ToUpper() ;

        //CargarIdioma
        Util.loadCombo(ddlIdioma, ListarParametroDetalle(1, 1, Constantes.PARAMETRO_IDIOMASGALEX), "Descripcion", "ParametroDetalle");
        Util.SelecionaItemCombo(ddlIdioma, pbeUsu.CodigoIdioma);

    }

    protected void ConfiguraFooter()
    {
        DataTable dt = ListarContenidoPorSeccionCodigo(CONTENIDO_SITIOCONFIG);
        DataRow[] arrdr = dt.Select(string.Format("CodigoContenido='{0}'", CONTENIDO_SITIOCONFIG_SETDEVEL));
        if (arrdr.Length > 0)
        {
            lblEmpresaDesarrolla.Text = arrdr[0]["Titulo"].ToString();
            aHtmUrlDevel.HRef = arrdr[0]["Url"].ToString();
            aHtmUrlDevel.InnerText = arrdr[0]["Titulo"].ToString();
        }
        arrdr = dt.Select(string.Format("CodigoContenido='{0}'", CONTENIDO_SITIOCONFIG_GALEXITO));
        if (arrdr.Length > 0)
        {
            aHtmUrlGalex.HRef = arrdr[0]["Url"].ToString();
            aHtmUrlGalex.InnerHtml = arrdr[0]["Titulo"].ToString();
            aHtmUrlGalex.InnerText = arrdr[0]["Titulo"].ToString();

            aHtmlCont.HRef = "mailto:" + arrdr[0]["TextoIntro"].ToString();
            aHtmlCont.InnerHtml = arrdr[0]["TextoIntro"].ToString();
            aHtmlCont.InnerText = "e-mail: " + arrdr[0]["TextoIntro"].ToString();
        }

        arrdr = dt.Select(string.Format("CodigoContenido='{0}'", CONTENIDO_SITIOCONFIG_MSSQL));
        if (arrdr.Length > 0)
        {
            aHtmUrlSql.HRef = arrdr[0]["Url"].ToString();
            aHtmUrlSql.Title = arrdr[0]["Titulo"].ToString();
            imgHtmSql.Src = arrdr[0]["Imagen"].ToString();
            imgHtmSql.Alt = arrdr[0]["Titulo"].ToString();
        }
        arrdr = dt.Select(string.Format("CodigoContenido='{0}'", CONTENIDO_SITIOCONFIG_MSNET));
        if (arrdr.Length > 0)
        {
            aHtmUrlNet.HRef = arrdr[0]["Url"].ToString();
            aHtmUrlNet.Title = arrdr[0]["Titulo"].ToString();
            imgHtmNet.Src = arrdr[0]["Imagen"].ToString();
            imgHtmNet.Alt = arrdr[0]["Titulo"].ToString();
        }

        arrdr = dt.Select(string.Format("CodigoContenido='{0}'", CONTENIDO_SITIOCONFIG_REDSOCIAL1));
        if (arrdr.Length > 0)
        {
            aHtmUrlRed1.HRef = arrdr[0]["Url"].ToString();
            aHtmUrlRed1.Title = arrdr[0]["Titulo"].ToString();
            imgHtmRed1.Src = arrdr[0]["Imagen"].ToString();
            imgHtmRed1.Alt = arrdr[0]["Titulo"].ToString();
        }

        arrdr = dt.Select(string.Format("CodigoContenido='{0}'", CONTENIDO_SITIOCONFIG_REDSOCIAL2));
        if (arrdr.Length > 0)
        {
            aHtmUrlRed2.HRef = arrdr[0]["Url"].ToString();
            aHtmUrlRed2.Title = arrdr[0]["Titulo"].ToString();
            imgHtmRed2.Src = arrdr[0]["Imagen"].ToString();
            imgHtmRed2.Alt = arrdr[0]["Titulo"].ToString();
        }
    }


    #region LLAMDAS A WEBSERVICES

     //<summary>
     //Método Obtiene la Aplicacion
     //</summary>
     //<returns>Devuelve un Objeto</returns>

    protected DataTable ListarContenidoPorSeccionCodigo(string pstrCodigoSeccion)
    {
        WCContenido.BEContenido be = new WCContenido.BEContenido() { CodigoSeccion = pstrCodigoSeccion };
        DataTable dt = null;
        using (var client = new ServiceClient<WCContenido.IWCContenido>("BasicHttpBinding_IWCContenido"))
        {
            dt = client.ServiceOperation<DataTable>(c => c.ListarPorSeccionCodigo(be).Tables[0]);
        }
        return dt;
    }


    /// <summary>
    /// Método Lista Datos de ParametroDetalle
    /// </summary>
    /// <returns>Devuelve un dataTable</returns>
    protected DataTable ListarParametroDetalle(int pintidCompania, int pintIdAplicacion, string pstrParametro)
    {
        WCParametroDetalle.BEParametroDetalle be = new WCParametroDetalle.BEParametroDetalle();
        be.IdCompania = pintidCompania;
        be.IdAplicacion = pintIdAplicacion;
        be.Parametro = pstrParametro;
        DataTable dt = new DataTable();
        using (var client = new ServiceClient<WCParametroDetalle.IWCParametroDetalle>("BasicHttpBinding_IWCParametroDetalle"))
        {
            var response = client.ServiceOperation<DataTable>(c => c.Listar(be).Tables[0]);
            dt = response;
        }
        return dt;
    }

    #endregion
}
